<?php namespace Admin\Controller;

use Hdphp\Controller\Controller;

//货品列表控制器
class ItemController extends CommonController{
	
//	模型私有化
	private $model;
	
//	构造函数
	public function __init(){
		
//		父级的构造函数
		parent::__init();
		
//		实例化货品数据库
		$this->model = new \Common\Model\Item;
		
	}
	
	
	
//货品显示
	public function index(){
//		$arr[1][] = 'a';
//		$arr[2][] = 'b';
//		$arr[1][] = 'c';
//		p($arr);exit;
//		
//		p(Q('get.'));
//		获得商品id    这个货品属于哪个商品所以要获得商品id
		$gid = Q('get.gid',0,'intval');
//		p($gid);
//		获得商品异步出来的分类id  
		$taid = Q('get.taid',0,'intval');
		//商品属性表
		$dityModel = new \Common\Model\Dity;
//		商品属性表和类型属性表关联
		$dityAttrModel = $dityModel->join('attr','attr_thid','=','thid')->where("goods_gid={$gid}")->get();
//		p($dityAttrModel);
		
//		创建一个空数字。
		$thid = array();
		foreach ($dityAttrModel as $k => $v) {
//			$v是数据库里面每一条数据  也就是一个数组
//			p($v);
//			判断他是属于规格的、
			if($v['class'] == 1){
//			$v['thid']是条件     也就是找到$v里面thid一样的数据     把他压到一个数组里   因为他们的键值一样
//所以他们会把一样键值的数组压到一个大数组里     不一样的不压一起    也就是分类    
				$thid[$v['thid']][] = $v;
			}
		}
//		p($thid);
			
		
//		实例化类型属性表
		$attrModel = new \Common\Model\Attr;
		foreach ($thid as $k => $v) {
//			p($k);
//			找到类型属性数据库里面thid和上面id一样的 数据的name
			$thname= $attrModel->where("thid=$k")->pluck('thname');
//			p($thname);
//			再把他赋给那个id的 新的字段里
			$thid[$k]['name']=$thname;
			$thid[$k]['value']=$v; 
		}
//		p($thid);
//		类型属性表
		View::with('thids',$thid);

	
//		商品属性表
		$dityModel = new \Common\Model\Dity;
//		获得可选的规格
		$dityModel = $dityModel->where("goods_gid={$gid}")->get();
		
//		定义一个空数组
		$olddity = array();
//			循环商品属性表
		foreach ($dityModel as $k => $v) {
//			把自增的id和dattr   一对一的存到上面定义的空数组里      空数组的id就是商品属性表里面的自增id   值就是商品属性表里面的dattr
			$olddity[$v['did']] = $v['dattr']; 
		
		}
//		p($olddity);
		
		
//-----------------------------------显示----------------------
//		获得货品表里面的全部数据
		$itemModel = $this->model->where("goods_gid={$gid}")->get();
//		View::with('itemModel',$itemModel);
//		p($itemModel);
//		定义一个空数组
//		循环货品表
		foreach ($itemModel as $k=>$v) {
//			p($v);
//		获得货品表里面的iatoin拆分成数组
		$itemModels= explode(',', $v['iatoin']);
		$dname = array();
//		p($itemModel);
//					循环拆分好的数组
				foreach ($itemModels as $kk) {
//					找到组合好的商品属性表  里面上面拆分好的id的数据
					$dname[] = $olddity[$kk];
					
					
			$itemModel[$k]['iatoin'] =$dname;
			}
			
		}
//		p($dname);
//		p($itemModel);
//		p($itemModels);
//		p($olddity); 
		
		View::with('itemModel',$itemModel);
//					显示数据库。
//		分配的货品属性表的数组
		View::make();

	}
	
	
//添加货品
	
	
	public function add(){
		
//		判断有没有提交数据
		if(IS_POST){
//		p($_POST);
//				再判断能不能通过自动验证
			if(!$this->model->store()) View::error($this->model->getError());
//					能通过就显示成功提示  并跳转显示页面
			View::success('添加成功');
		
		}
	}




//删除货品
	public function del(){
			
//		获得要删除的id
		$iid = Q('get.iid',0,'intval');
//		p($iid);exit;
		
		$this->model->where("iid={$iid}")->delete();

		
//		 成功提示
		View::success('删除成功');
		
	}






//	修改货品列表
	public function edit(){
		
			if(IS_POST){
				
//				把提交上来的数据iatoin组合成字符串
				$_POST['iatoin'] = implode(',', $_POST['iatoin']);
//					调用货品模型里的自动验证  判断能不能通过  自动验证
				if(!$this->model->edits())View::error($this->model->getError());
//					成功提示
				View::success('修改成功',U('index',array('gid'=>$_GET['goods_gid'])));
				
			}
		
//		获得要修改数据id
		$iid = Q('get.iid',0,'intval');
//			商品id
		$gid = Q('get.goods_gid',0,'intval');

//		实例化商品属性表
		$dityModel = new \Common\Model\Dity;
//		获得可以用的数据
		$attrDity = $dityModel->join('attr','thid','=','attr_thid')->where("goods_gid={$gid} and class != 0")->get();
//		p($attrDity);
//			空数组
			$newDity = array();
//			循环组合
			foreach ($attrDity as $k => $v) {
//				组合
				$newDity[$v['thname']][] = $v;

			}		
//			p($newDity);
//			分配
		View::with('newDity',$newDity);
		
		
		
//		通过id   来找货品数据库里面的数据
		$oldModel = $this->model->where("iid={$iid}")->find();	
//		p($oldModel);
		
		$oldModel['iatoin'] = explode(',', $oldModel['iatoin']);
		
//		p($oldModel);
		
		
		View::with('oldModel',$oldModel);
		
		View::make();
	}











}


 ?>